{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "tmp = np.load('test.npy',allow_pickle=True).item()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def rgb_to_hex(rgb):\n",
    "    hex_value = '#{:02x}{:02x}{:02x}'.format(int(rgb[0]),int(rgb[1]),int(rgb[2]))\n",
    "    return hex_value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "node_color = [rgb_to_hex(tmp['node_color'][i][0]/tmp['node_color'][i][1]*255) for i in tmp['node']]\n",
    "edge_color = [rgb_to_hex(tmp['edge_color'][i][0]/tmp['edge_color'][i][1]*255) for i in tmp['edge']][-7:-1]\n",
    "colors = cm.tab10(np.linspace(0,  1, len(edges)))  \n",
    "edge = [(i.split('#'))+[tmp['edge'][i]] for i in tmp['edge']][-7:-3]\n",
    "node = tmp['node']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.12156863, 0.46666667, 0.70588235, 1.        ],\n",
       "       [0.17254902, 0.62745098, 0.17254902, 1.        ],\n",
       "       [0.58039216, 0.40392157, 0.74117647, 1.        ],\n",
       "       [0.89019608, 0.46666667, 0.76078431, 1.        ],\n",
       "       [0.7372549 , 0.74117647, 0.13333333, 1.        ],\n",
       "       [0.09019608, 0.74509804, 0.81176471, 1.        ]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "colors"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['IRN', 'PARN', 1],\n",
       " ['MRN', 'PRNr', 1],\n",
       " ['MRN', 'PRNc', 1],\n",
       " ['PRNr', 'PRNc', 1]]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "edge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "G = nx.Graph()\n",
    "G.add_nodes_from(node)\n",
    "G.add_weighted_edges_from(edge)\n",
    "pos = nx.spring_layout( \n",
    "    G, \n",
    "    k=1,\n",
    "    iterations=50,\n",
    "    seed=0\n",
    ")\n",
    "nx.draw_networkx_nodes( \n",
    "    G,pos, \n",
    "    node_size=150,\n",
    "    node_color=node_color,\n",
    "    alpha=1 \n",
    ")\n",
    "nx.draw_networkx_edges( \n",
    "    G, pos, \n",
    "    edge_color=colors, \n",
    "    width=1,\n",
    "    arrows=False\n",
    ")\n",
    "nx.draw_networkx_labels( \n",
    "    G,pos, \n",
    "    font_size=18,\n",
    "    font_family='SimHei',\n",
    "    font_color='#000000'\n",
    ")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['IRN', 'PARN', 1],\n",
       " ['MRN', 'PRNr', 1],\n",
       " ['MRN', 'PRNc', 1],\n",
       " ['PRNr', 'PRNc', 1]]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "edge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "'int' object is not iterable",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-28-c1834ef38da5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0mG\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGraph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      8\u001b[0m \u001b[0;31m# edges = [(1,2), (2,3), (3,4), (4,5), (5,6), (6,4)]  # 定义6条边\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mG\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_edges_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0medge\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     10\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     11\u001b[0m \u001b[0;31m# 生成不同颜色列表\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/.local/lib/python3.6/site-packages/networkx/classes/graph.py\u001b[0m in \u001b[0;36madd_edges_from\u001b[0;34m(self, ebunch_to_add, **attr)\u001b[0m\n\u001b[1;32m    937\u001b[0m             \u001b[0mdatadict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_adj\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0medge_attr_dict_factory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    938\u001b[0m             \u001b[0mdatadict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mattr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 939\u001b[0;31m             \u001b[0mdatadict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    940\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_adj\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdatadict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    941\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_adj\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdatadict\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m: 'int' object is not iterable"
     ]
    }
   ],
   "source": [
    "\n",
    "import networkx as nx \n",
    "import matplotlib.pyplot  as plt \n",
    "import matplotlib.cm  as cm \n",
    "import numpy as np \n",
    " \n",
    "# 创建图并添加节点和边 \n",
    "G = nx.Graph()\n",
    "# edges = [(1,2), (2,3), (3,4), (4,5), (5,6), (6,4)]  # 定义6条边\n",
    "G.add_edges_from([i[:2] for i in edge]) \n",
    " \n",
    "# 生成不同颜色列表 \n",
    "colors = cm.tab10(np.linspace(0,  1, len(edge)))  # 使用matplotlib的tab10颜色映射生成6种颜色 \n",
    "print(colors)\n",
    "# 绘制图形 \n",
    "pos = nx.circular_layout(G)   # 环形布局（可替换为spring_layout或其他布局）\n",
    "nx.draw(G,  pos, \n",
    "        edgelist=edge, \n",
    "        edge_color=edge_color, \n",
    "        width=3, \n",
    "        with_labels=True,\n",
    "        node_color='skyblue', \n",
    "        node_size=800,\n",
    "        edge_cmap=cm.tab10) \n",
    " \n",
    "# 添加颜色条（可选）\n",
    "sm = plt.cm.ScalarMappable(cmap=cm.tab10,  norm=plt.Normalize(vmin=0, vmax=len(edge)-1))\n",
    "sm.set_array([]) \n",
    "plt.colorbar(sm,  ticks=range(len(edge)), label=\"Edge Index\")\n",
    " \n",
    "plt.show() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x7fee69cdef28>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAC3CAYAAAAb3KPGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAN5ElEQVR4nO3db6yeZ10H8O9vLQXHthZkjGadbNHGOIkBPFk0KBoYZFOykvhvC+hIII3BJRg0pmYJifAGNCIm8sIGCAPUiSChkeoYY4aQMFiBgY45VidknYMKuMrSwLLu54s+kEM9bbHPPZ7refb5JCfn/nPlvr4vrjbne+7nvk91dwAAAGAUZy06AAAAAKynqAIAADAURRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ1FUl1hVXVFVd1fVwaras+g8LL+qekdVHa6qf110FpZfVV1UVbdW1Req6s6qes2iM7HcqupJVfWpqvrcbE390aIzsfyqalNVfbaq/mHRWVh+VfWlqvqXqrqjqg4sOs8yK39HdTlV1aYkX0zyoiSHktye5Jru/sJCg7HUqur5SR5K8q7uftai87Dcqmp7ku3d/ZmqOjfJp5O81P9TnKmqqiRP7u6HquoJST6e5DXdfduCo7HEquq1SdaSnNfdL1l0HpZbVX0pyVp3f23RWZadO6rL67IkB7v73u5+OMmNSXYtOBNLrrs/luQbi87BaujuB7r7M7Ptbya5K8mFi03FMuvjHprtPmH25TfunLGq2pHkl5O8bdFZgO+lqC6vC5Pct27/UPwACAyqqi5O8pwkn1xwFJbc7GOadyQ5nOTm7rammMdbkvxBkkcXnIPV0Uk+XFWfrqrdiw6zzBRVAB5TVXVOkvcn+d3u/p9F52G5dfex7n52kh1JLqsqjylwRqrqJUkOd/enF52FlfJz3f3cJFcm+Z3ZY1WcAUV1ed2f5KJ1+ztmxwCGMXuO8P1J/qq7/37ReVgd3f1gkluTXLHgKCyv5yW5avZM4Y1JXlBV71lsJJZdd98/+344yQdy/HE9zoCiurxuT7Kzqi6pqi1Jrk6yb8GZAL5r9uKbtye5q7vfvOg8LL+qOr+qts22fyjHXyj4bwsNxdLq7j/s7h3dfXGO/xz10e5++YJjscSq6smzlwemqp6c5MVJ/CWFM6SoLqnufiTJdUluyvEXlLy3u+9cbCqWXVX9TZJPJPnxqjpUVa9cdCaW2vOS/GaO36W4Y/b1S4sOxVLbnuTWqvp8jv/C9ubu9idFgFFckOTjVfW5JJ9K8qHu/qcFZ1pa/jwNAAAAQ3FHFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqK6Aqpq96IzsFqsKaZkPTE1a4qpWVNMzZqan6K6GvxDYGrWFFOynpiaNcXUrCmmZk3NSVEFAABgKNXdi86woU1nb+3NW5++6BhL4djRI9l09tZFxxjaWU86tOgIS+XYN49l07mbFh1jaOc/9COLjrA0HvrWgznnSdsWHWN42zbXoiMsjW8cfTBPPXvbomMM79vn/ceiIyyNBx98NNu2uX9zOvfmRxcdYWk8euTBnLV126JjDO+RL971te4+f6Nzm3/QYb5fm7c+PduvfcuiY7Aizv2JPYuOwIr57U/8+aIjsGJ2bXvCoiOwYu5+8SsWHYEV87L660VHYMV89QXP+fLJzvnVEQAAAENRVAEAABiKogoAAMBQFFUAAACGoqgCAAAwFEUVAACAoSiqAAAADEVRBQAAYCiKKgAAAEOZq6hW1VOr6uaqumf2/SmnGHteVR2qqr+YZ04AAABW27x3VPckuaW7dya5ZbZ/Mm9I8rE55wMAAGDFzVtUdyW5YbZ9Q5KXbjSoqn46yQVJPjznfAAAAKy4eYvqBd39wGz7KzleRr9HVZ2V5E+T/P7pLlZVu6vqQFUdOHb0yJzRAAAAWEabTzegqj6S5BkbnLp+/U53d1X1BuNenWR/dx+qqlPO1d17k+xNkidu37nRtQAAAFhxpy2q3X35yc5V1Verant3P1BV25Mc3mDYzyb5+ap6dZJzkmypqoe6+1TPswIAAPA4ddqiehr7klyb5I2z7x88cUB3v+w721X1iiRrSioAAAAnM+8zqm9M8qKquifJ5bP9VNVaVb1t3nAAAAA8/sx1R7W7v57khRscP5DkVRscf2eSd84zJwAAAKtt3juqAAAAMClFFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqIKAADAUBRVAAAAhqKoAgAAMBRFFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqIKAADAUBRVAAAAhqKoAgAAMBRFFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDmauoVtVTq+rmqrpn9v0pG4x5dlV9oqrurKrPV9VvzDMnAAAAq23eO6p7ktzS3TuT3DLbP9HRJL/V3T+Z5Iokb6mqbXPOCwAAwIqat6juSnLDbPuGJC89cUB3f7G775lt/2eSw0nOn3NeAAAAVtS8RfWC7n5gtv2VJBecanBVXZZkS5J/P8n53VV1oKoOHDt6ZM5oAAAALKPNpxtQVR9J8owNTl2/fqe7u6r6FNfZnuTdSa7t7kc3GtPde5PsTZInbt950msBAACwuk5bVLv78pOdq6qvVtX27n5gVkQPn2TceUk+lOT67r7tjNMCAACw8ub96O++JNfOtq9N8sETB1TVliQfSPKu7n7fnPMBAACw4uYtqm9M8qKquifJ5bP9VNVaVb1tNubXkzw/ySuq6o7Z17PnnBcAAIAVddqP/p5Kd389yQs3OH4gyatm2+9J8p555gEAAODxY947qgAAADApRRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ1FUAQAAGIqiCgAAwFAUVQAAAIaiqAIAADAURRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ1FUAQAAGIqiCgAAwFAUVQAAAIaiqAIAADAURRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ5mkqFbVFVV1d1UdrKo9G5x/YlX97ez8J6vq4inmBQAAYPXMXVSralOStya5MsmlSa6pqktPGPbKJP/d3T+W5M+SvGneeQEAAFhNU9xRvSzJwe6+t7sfTnJjkl0njNmV5IbZ9vuSvLCqaoK5AQAAWDFTFNULk9y3bv/Q7NiGY7r7kSRHkvzwiReqqt1VdaCqDhw7emSCaAAAACyboV6m1N17u3utu9c2nb110XEAAABYgCmK6v1JLlq3v2N2bMMxVbU5ydYkX59gbgAAAFbMFEX19iQ7q+qSqtqS5Ook+04Ysy/JtbPtX03y0e7uCeYGAABgxWye9wLd/UhVXZfkpiSbkryju++sqtcnOdDd+5K8Pcm7q+pgkm/keJkFAACA/2Puopok3b0/yf4Tjr1u3fa3kvzaFHMBAACw2oZ6mRIAAAAoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqIKAADAUBRVAAAAhqKoAgAAMBRFFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqIKAADAUBRVAAAAhqKoAgAAMBRFFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDmaSoVtUVVXV3VR2sqj0bnH9tVX2hqj5fVbdU1TOnmBcAAIDVM3dRrapNSd6a5Moklya5pqouPWHYZ5OsdfdPJXlfkj+ed14AAABW0xR3VC9LcrC77+3uh5PcmGTX+gHdfWt3H53t3pZkxwTzAgAAsIKmKKoXJrlv3f6h2bGTeWWSf5xgXgAAAFbQ5h/kZFX18iRrSX7hJOd3J9mdJJvOO/8HmAwAAIBRTHFH9f4kF63b3zE79j2q6vIk1ye5qru/vdGFuntvd69199qms7dOEA0AAIBlM0VRvT3Jzqq6pKq2JLk6yb71A6rqOUn+MsdL6uEJ5gQAAGBFzV1Uu/uRJNcluSnJXUne2913VtXrq+qq2bA/SXJOkr+rqjuqat9JLgcAAMDj3CTPqHb3/iT7Tzj2unXbl08xDwAAAKtvio/+AgAAwGQUVQAAAIaiqAIAADAURRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ1FUAQAAGIqiCgAAwFAUVQAAAIaiqAIAADAURRUAAIChKKoAAAAMRVEFAABgKIoqAAAAQ1FUAQAAGIqiCgAAwFAUVQAAAIaiqAIAADAURRUAAIChKKoAAAAMZZKiWlVXVNXdVXWwqvacYtyvVFVX1doU8wIAALB65i6qVbUpyVuTXJnk0iTXVNWlG4w7N8lrknxy3jkBAABYXVPcUb0sycHuvre7H05yY5JdG4x7Q5I3JfnWBHMCAACwoqYoqhcmuW/d/qHZse+qqucmuai7P3SqC1XV7qo6UFUHjh09MkE0AAAAls1j/jKlqjoryZuT/N7pxnb33u5e6+61TWdvfayjAQAAMKApiur9SS5at79jduw7zk3yrCT/XFVfSvIzSfZ5oRIAAAAbmaKo3p5kZ1VdUlVbklydZN93Tnb3ke5+Wndf3N0XJ7ktyVXdfWCCuQEAAFgxcxfV7n4kyXVJbkpyV5L3dvedVfX6qrpq3usDAADw+LJ5iot09/4k+0849rqTjP3FKeYEAABgNT3mL1MCAACA/w9FFQAAgKEoqgAAAAxFUQUAAGAoiioAAABDUVQBAAAYiqIKAADAUBRVAAAAhqKoAgAAMJTq7kVn2FBV/VeSLy86x5J4WpKvLToEK8WaYkrWE1OzppiaNcXUrKnvzzO7+/yNTgxbVPn+VdWB7l5bdA5WhzXFlKwnpmZNMTVriqlZU/Pz0V8AAACGoqgCAAAwFEV1NexddABWjjXFlKwnpmZNMTVriqlZU3PyjCoAAABDcUcVAACAoSiqAAAADEVRBQAAYCiKKgAAAENRVAEAABjK/wJSy/OSRfUqQgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1152x192 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow([colors])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.6.9 64-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "767d51c1340bd893661ea55ea3124f6de3c7a262a8b4abca0554b478b1e2ff90"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
